home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2006 May / PCWMAY06.iso / Software / Freeware / First Page 2006 3.00 / fp2006-final-3.00-setup.exe / {app} / Iscripts / Maths & Calculations / numbers-converter.izs < prev    next >
Text File  |  2005-07-29  |  5KB  |  122 lines

  1. <!NOWIZARD>
  2.  
  3. <!TITLE>Numbers converter
  4. <!/TITLE>
  5.  
  6. <!DESCRIPTION>This flexible script allows you to easily convert between any numbering system, such as from binary to hex, decimal to binary etc.
  7.  
  8. <!/DESCRIPTION> 
  9.  
  10. <!CATEGORY>math related<!/CATEGORY>
  11.  
  12. <!SCRIPT>
  13. <!-- START OF SCRIPT -->
  14. <script language="JavaScript">
  15.  
  16. convertBase="0123456789abcdefghijklmnopqrstuvwxyz";
  17. function convert(input,origin,dest) {
  18. input=input.toString().toLowerCase(); origin=origin.toString(); dest=dest.toString()
  19. var b=0; var Result="";
  20. if (Number(origin)>convertBase.length || Number(dest)>convertBase.length || Number(origin)<2 || Number(dest)<2) return "Invalid numbering system"
  21. for (var c=1;c<=input.length;c++) { b+=convertBase.indexOf(input.substring(c-1,c))*(Math.pow(origin,input.length-c)); if (convertBase.indexOf(input.substring(c-1,c)) > Number(origin)) return 'Character "'+input.substring(c-1,c)+'" not present in origin system'; }
  22. var a=Math.floor(Math.log(b)/Math.log(dest))
  23. while (a>-1) {
  24.   var e=Math.pow(dest,a)
  25.   a--;
  26.   var d=(b-b%e)/e+1;
  27.   b%=e;
  28.   Ciffer=convertBase.substring(d-1,d);
  29.   Result+=Ciffer;
  30.   }
  31. return Result
  32. }
  33. </script>
  34.  
  35. <form>
  36. <table><tr>
  37.   <td colspan="2"><b>Numbers converter</b><br><small>Converts numbers between different numbering scales<br>Please input the relevant information in the boxes</small></td>
  38. </tr>
  39. <tr height="1"><td colspan="2" bgcolor="black"></td></tr>
  40. <tr>
  41.   <td>Number to convert:<br><small>May hold numbers as well as letters</small></td>
  42.   <td><input type="text" name="originalNumber"></td>
  43. </tr>
  44. <tr height="1"><td colspan="2" bgcolor="gray"></td></tr>
  45. <tr>
  46.   <td>Scale to convert from:<br><small>Fx. 2 for binary or 16 for hexadecimal<br>min. 2, max. <script>document.write(convertBase.length)</script></small></td>
  47.   <td><input type="text" name="originalScale"></td>
  48. </tr>
  49. <tr height="1"><td colspan="2" bgcolor="gray"></td></tr>
  50. <tr>
  51.   <td>Scale to convert to:</td>
  52.   <td><input type="text" name="destinationScale"></td>
  53. </tr>
  54. <tr height="1"><td colspan="2" bgcolor="gray"></td></tr>
  55. <tr>
  56.   <td><input type="button" onClick='destinationNumber.value=convert(originalNumber.value,originalScale.value,destinationScale.value)' value="Convert"></td>
  57.   <td><input type="text" name="destinationNumber"></td>
  58. </tr></table>
  59.  
  60. </form>
  61.  
  62.  
  63. <!-- END OF SCRIPT -->
  64. <!/SCRIPT>
  65.  
  66. <!PREVIEW>
  67. <!-- START OF SCRIPT -->
  68. <script language="JavaScript">
  69.  
  70. convertBase="0123456789abcdefghijklmnopqrstuvwxyz";
  71. function convert(input,origin,dest) {
  72. input=input.toString().toLowerCase(); origin=origin.toString(); dest=dest.toString()
  73. var b=0; var Result="";
  74. if (Number(origin)>convertBase.length || Number(dest)>convertBase.length || Number(origin)<2 || Number(dest)<2) return "Invalid numbering system"
  75. for (var c=1;c<=input.length;c++) { b+=convertBase.indexOf(input.substring(c-1,c))*(Math.pow(origin,input.length-c)); if (convertBase.indexOf(input.substring(c-1,c)) > Number(origin)) return 'Character "'+input.substring(c-1,c)+'" not present in origin system'; }
  76. var a=Math.floor(Math.log(b)/Math.log(dest))
  77. while (a>-1) {
  78.   var e=Math.pow(dest,a)
  79.   a--;
  80.   var d=(b-b%e)/e+1;
  81.   b%=e;
  82.   Ciffer=convertBase.substring(d-1,d);
  83.   Result+=Ciffer;
  84.   }
  85. return Result
  86. }
  87. </script>
  88.  
  89. <form>
  90. <table><tr>
  91.   <td colspan="2"><b>Numbers converter</b><br><small>Converts numbers between different numbering scales<br>Please input the relevant information in the boxes</small></td>
  92. </tr>
  93. <tr height="1"><td colspan="2" bgcolor="black"></td></tr>
  94. <tr>
  95.   <td>Number to convert:<br><small>May hold numbers as well as letters</small></td>
  96.   <td><input type="text" name="originalNumber"></td>
  97. </tr>
  98. <tr height="1"><td colspan="2" bgcolor="gray"></td></tr>
  99. <tr>
  100.   <td>Scale to convert from:<br><small>Fx. 2 for binary or 16 for hexadecimal<br>min. 2, max. <script>document.write(convertBase.length)</script></small></td>
  101.   <td><input type="text" name="originalScale"></td>
  102. </tr>
  103. <tr height="1"><td colspan="2" bgcolor="gray"></td></tr>
  104. <tr>
  105.   <td>Scale to convert to:</td>
  106.   <td><input type="text" name="destinationScale"></td>
  107. </tr>
  108. <tr height="1"><td colspan="2" bgcolor="gray"></td></tr>
  109. <tr>
  110.   <td><input type="button" onClick='destinationNumber.value=convert(originalNumber.value,originalScale.value,destinationScale.value)' value="Convert"></td>
  111.   <td><input type="text" name="destinationNumber"></td>
  112. </tr></table>
  113.  
  114. </form>
  115.  
  116.  
  117.  
  118.  
  119. <!-- END OF SCRIPT -->
  120. <!/PREVIEW>
  121.  
  122. <!RELATED>NONE<!/RELATED>